import Vue from 'vue'

// import Cookies from 'js-cookie'

import 'normalize.css/normalize.css' // a modern alternative to CSS resets

// import Element from 'element-ui'
// import './styles/element-variables.scss'

import 'vant/lib/index.css' // vant组件样式

// import Vconsole from 'vconsole';

import {
  ActionSheet,
  Area,
  Cascader, Calendar,
  DatetimePicker,
  Field,
  Form,
  Picker,
  Popup,
  Stepper,
  Switch,
  Uploader,
  List,
  Button,
  Cell, CellGroup,
  Pagination,
  Checkbox,
  CheckboxGroup,
  RadioGroup, Radio,
  Tabbar, TabbarItem,
  Grid, GridItem,
  Dialog
} from 'vant'

// 如果使用中文语言包请默认支持，无需额外引入，请删除该依赖
// import enLang from 'element-ui/lib/locale/lang/en'

import '@/styles/index.scss' // global css
// import '@/assets/thirdIcon/iconfont.css' // third iconfont css

import App from './App'
import store from './store'
import router from './router'

// import './icons' // icon
// import './permission' // permission control
// import './utils/error-log' // error log

import * as filters from './filters' // global filters
/**
 * If you don't want to use mock-server
 * you want to use MockJs for mock api
 * you can execute: mockXHR()
 *
 * Currently MockJs will be used in the production environment,
 * please remove it before going online ! ! !
 */
if (process.env.NODE_ENV === 'production') {
  const { mockXHR } = require('../mock')
  mockXHR()
}
// new Vconsole();

// import directive from './directive' // directive
// import plugins from './plugins' // plugins
// import { download } from '@/utils/request'

// import './icons' // icon
// import './permission' // permission control
// import { getDicts } from "@/api/dict/data";
// import { getConfigKey } from "@/api/config";
import { parseTime, formatDateTime } from '@/utils/common'
// 分页组件
// import ElementPagination from "@/components/Pagination";
// 自定义表格工具组件
// import RightToolbar from "@/components/RightToolbar"
// 富文本组件
// import Editor from "@/components/Editor"
// 文件上传组件
// import FileUpload from "@/components/FileUpload"
// 图片上传组件
// import ImageUpload from "@/components/ImageUpload"
// 图片预览组件
// import ImagePreview from "@/components/ImagePreview"
// 字典标签组件
// import DictTag from '@/components/DictTag'
// 头部标签组件
// import VueMeta from 'vue-meta'
// 字典数据组件
// import DictData from '@/components/DictData'

// import VDistpicker from 'v-distpicker'
// export default{
//   component:{ VDistpicker }
// }

// function IsPC() {
//   var userAgentInfo = navigator.userAgent
//   var Agents = ['Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPad', 'iPod']
//   var flag = true
//   for (var v = 0; v < Agents.length; v++) {
//     if (userAgentInfo.indexOf(Agents[v]) > 0) {
//       flag = false
//       break
//     }
//   }
//   return flag
// }

// 全局方法挂载
// Vue.prototype.$isMobile = isMobile();
// Vue.prototype.$isWxClient = isWxClient();
// Vue.prototype.getDicts = getDicts;
// Vue.prototype.getConfigKey = getConfigKey;
Vue.prototype.parseTime = parseTime
Vue.prototype.formatDateTime = formatDateTime
// Vue.prototype.resetForm = resetForm;
// Vue.prototype.addDateRange = addDateRange;
// Vue.prototype.selectDictLabel = selectDictLabel;
// Vue.prototype.selectDictLabels = selectDictLabels;
// Vue.prototype.download = download;
// Vue.prototype.handleTree = handleTree;

// 全局组件挂载
// Vue.component('DictTag', DictTag);
// Vue.component('Pagination', ElementPagination);
// Vue.component('RightToolbar', RightToolbar);
// Vue.component('Editor', Editor);
// Vue.component('FileUpload', FileUpload);
// Vue.component('ImageUpload', ImageUpload);
// Vue.component('ImagePreview', ImagePreview)

// Vue.use(directive);
// Vue.use(plugins);
// Vue.use(VueMeta)
// DictData.install();

Vue.use(Popup)
Vue.use(Area)
Vue.use(DatetimePicker)
Vue.use(ActionSheet)
Vue.use(Picker)
Vue.use(Switch)
Vue.use(Stepper)
Vue.use(Field)
Vue.use(Uploader)
Vue.use(Cascader)
Vue.use(Form)
Vue.use(List)
Vue.use(Button)
Vue.use(Cell)
Vue.use(CellGroup)
Vue.use(Pagination)
Vue.use(Checkbox)
Vue.use(CheckboxGroup)
Vue.use(Radio)
Vue.use(RadioGroup)
Vue.use(Calendar)
Vue.use(Tabbar)
Vue.use(TabbarItem)
Vue.use(Grid)
Vue.use(GridItem)
Vue.use(Dialog)

// Vue.use(Element, {
//   size: Cookies.get('size') || 'medium', // set element-ui default size
//
//   // 如果使用中文，无需设置，请删除
//   // locale: enLang
// })

// register global utility filters
Object.keys(filters).forEach(key => {
  Vue.filter(key, filters[key])
})

Vue.config.productionTip = false

new Vue({
  el: '#app',
  router,
  store,
  render: h => h(App)
})
